<?php

namespace App\Console\Commands;

use App\Tools\Pano;
use Illuminate\Console\Command;

class MakePanoCommand extends Command
{
    use Pano;
    protected $images, $configoption;
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'make:pano {images* : 图片的路径} {--C|config=0 : 漫游生成模式,默认为[0],即自定义模式}';

    //    调用方式1：./artisan make:pano 1.jpg 2.jpg -C 0
    //    调用方式1：./artisan make:pano 1.jpg 2.jpg --config=1


    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'reate a new Panorama Program 生成一个新的全景相册';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        // 在命令执行时被调用，可以将所有命令逻辑都放在这个方法里面

        // 获取所有参数的值
        // $arguments = $this->arguments();
        // var_dump($arguments);
        //
        // 获取某一个参数的值
        // $images = $this->argument('images');
        // var_dump($images);


        // 获取某一个选项的值
        // $option = $this->option('outputpath');
        // var_dump($option);

        // 获取所有选项的值
        // $options = $this->options();
        // var_dump($options);

        //获取输入的图片并组合字符串
        $this->images = implode(' ', $this->argument('images'));
        $this->configoption = $this->option('config');

        //创建全景漫游,放入队列
        dispatch(new \App\Jobs\MakePanoJob($this->images,$this->configoption));
    }
}
